package _4lists.src.cycleLinked;
public class Josepfu {
    public static int josephus(int k, int m, int n) {
        if (k == 1) {
            return 0; // 只剩一个人时返回其位置（初始为0）
        }
        return (josephus(k - 1, (m + n - 1) % k, n) + 1) % k;
    }

    public static void main(String[] args) {
        int k = 5; // 总人数
        int m = 1; // 开始报数的人的位置（从1开始计数）
        int n = 2; // 报到n的人被淘汰

        // 调整m使得数组索引从0开始
        int survivorPosition = josephus(k, m - 1, n);
        System.out.println("最后一个存活的人的位置是: " + (survivorPosition + 1));
    }
}


